Exposing parameters in referencing worksheets

ABSTRACT

Exposing parameters in referencing worksheets including receiving a request for a referencing worksheet linked from a data source worksheet, wherein the data source worksheet is a presentation of a data set from a database, and wherein the data source worksheet comprises a function utilizing an exposable parameter; generating the referencing worksheet from the data source worksheet, wherein the referencing worksheet exposes the exposable parameter without exposing the function utilizing the exposable parameter; and presenting the referencing worksheet with the exposable parameter without allowing access to the function utilizing the exposable parameter.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a non-provisional application for patent entitled toa filing date and claiming the benefit of earlier-filed U.S. ProvisionalPatent Application Ser. No. 62/866,762, filed Jun. 26, 2020.

BACKGROUND Field of the Invention

The field of the invention is data processing, or, more specifically,methods, apparatus, and products for exposing parameters in referencingworksheets.

Description of Related Art

Modern businesses may store large amounts of data in remote databaseswithin cloud-based data warehouses. This data may be accessed usingdatabase query languages, such as structured query language (SQL).Further, manipulating the data stored in the database may requireconstructing complex queries beyond the abilities of most users.

SUMMARY

Methods, systems, and apparatus for exposing parameters in referencingworksheets. Exposing parameters in referencing worksheets includesreceiving a request for a referencing worksheet linked from a datasource worksheet, wherein the data source worksheet is a presentation ofa data set from a database, and wherein the data source worksheetcomprises a function utilizing an exposable parameter; generating thereferencing worksheet from the data source worksheet, wherein thereferencing worksheet exposes the exposable parameter without exposingthe function utilizing the exposable parameter; and presenting thereferencing worksheet with the exposable parameter without allowingaccess to the function utilizing the exposable parameter.

The foregoing and other objects, features and advantages of theinvention will be apparent from the following more particulardescriptions of exemplary embodiments of the invention as illustrated inthe accompanying drawings wherein like reference numbers generallyrepresent like parts of exemplary embodiments of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 sets forth a block diagram of an example system configured forexposing parameters in referencing worksheets according to embodimentsof the present invention.

FIG. 2 sets forth a block diagram of an example system configured forexposing parameters in referencing worksheets according to embodimentsof the present invention.

FIG. 3 sets forth a block diagram of an example system configured forexposing parameters in referencing worksheets according to embodimentsof the present invention.

FIG. 4 sets forth a flow chart illustrating an exemplary method forexposing parameters in referencing worksheets according to embodimentsof the present invention.

FIG. 5 sets forth a flow chart illustrating an exemplary method forexposing parameters in referencing worksheets according to embodimentsof the present invention.

FIG. 6 sets forth a flow chart illustrating an exemplary method forexposing parameters in referencing worksheets according to embodimentsof the present invention.

DETAILED DESCRIPTION

Exemplary methods, apparatus, and products for exposing parameters inreferencing worksheets in accordance with the present invention aredescribed with reference to the accompanying drawings, beginning withFIG. 1 . FIG. 1 sets forth a block diagram of automated computingmachinery comprising an exemplary linking module computing system (152)configured for exposing parameters in referencing worksheets accordingto embodiments of the present invention. The linking module computingsystem (152) of FIG. 1 includes at least one computer processor (156) or‘CPU’ as well as random access memory (168) (RAM′) which is connectedthrough a high speed memory bus (166) and bus adapter (158) to processor(156) and to other components of the linking module computing system(152).

Stored in RAM (168) is an operating system (154). Operating systemsuseful in computers configured for exposing parameters in referencingworksheets according to embodiments of the present invention includeUNIX™, Linux™, Microsoft Windows™, AIX™ IBM's i OS™, and others as willoccur to those of skill in the art. The operating system (154) in theexample of FIG. 1 is shown in RAM (168), but many components of suchsoftware typically are stored in non-volatile memory also, such as, forexample, on data storage (170), such as a disk drive. Also stored in RAMis the linking module (126), a module for exposing parameters inreferencing worksheets according to embodiments of the presentinvention.

The linking module computing system (152) of FIG. 1 includes disk driveadapter (172) coupled through expansion bus (160) and bus adapter (158)to processor (156) and other components of the linking module computingsystem (152). Disk drive adapter (172) connects non-volatile datastorage to the linking module computing system (152) in the form of datastorage (170). Disk drive adapters useful in computers configured forexposing parameters in referencing worksheets according to embodimentsof the present invention include Integrated Drive Electronics (IDE′)adapters, Small Computer System Interface (SCSI′) adapters, and othersas will occur to those of skill in the art. Non-volatile computer memoryalso may be implemented for as an optical disk drive, electricallyerasable programmable read-only memory (so-called ‘EEPROM’ or ‘Flash’memory), RAM drives, and so on, as will occur to those of skill in theart.

The example linking module computing system (152) of FIG. 1 includes oneor more input/output (‘I/O’) adapters (178). I/O adapters implementuser-oriented input/output through, for example, software drivers andcomputer hardware for controlling output to display devices such ascomputer display screens, as well as user input from user input devices(181) such as keyboards and mice. The example linking module computingsystem (152) of FIG. 1 includes a video adapter (209), which is anexample of an I/O adapter specially designed for graphic output to adisplay device (180) such as a display screen or computer monitor. Videoadapter (209) is connected to processor (156) through a high speed videobus (164), bus adapter (158), and the front side bus (162), which isalso a high speed bus.

The exemplary linking module computing system (152) of FIG. 1 includes acommunications adapter (167) for data communications with othercomputers and for data communications with a data communicationsnetwork. Such data communications may be carried out serially throughRS-232 connections, through external buses such as a Universal SerialBus (‘USB’), through data communications networks such as IP datacommunications networks, and in other ways as will occur to those ofskill in the art. Communications adapters implement the hardware levelof data communications through which one computer sends datacommunications to another computer, directly or through a datacommunications network. Examples of communications adapters useful incomputers configured for exposing parameters in referencing worksheetsaccording to embodiments of the present invention include modems forwired dial-up communications, Ethernet (IEEE 802.3) adapters for wireddata communications, and 802.11 adapters for wireless datacommunications.

The communications adapter (167) is communicatively coupled to a widearea network (190) that also includes a cloud-based data warehouse (192)and a client system (194). The cloud-based data warehouse (192) is acomputing system or group of computing systems that hosts a database foraccess over the wide area network (190). The client system (194) is acomputing system that accesses the database using the linking module(126) on the linking module computing system (152).

FIG. 2 shows an exemplary system for exposing parameters in referencingworksheets according to embodiments of the present invention. As shownin FIG. 2 , the system includes a client computing system (194), alinking module computing system (152), and a cloud-based data warehouse(192). The client computing system (194) includes a graphical userinterface (GUI) (202). The linking module computing system (152)includes a linking module (126) and a metadata repository (204). Thecloud-based data warehouse (192) includes a database (206).

The GUI (202) is a visual presentation configured to present data setsin the form of a worksheet and graphical elements to a client andreceives client input from the client. The GUI (202) may be presented,in part, by the linking module (126) and displayed on a client computingsystem (194) (e.g., on a system display or mobile touchscreen). Thelinking module (126) may be part of an Internet application hosted onthe linking module computing system (152) and initiate the presentationof the GUI (202) on the client computing system (194).

The GUI (202) presents, in part, worksheets to a user. A worksheet is apresentation of a data set from a database (206). A referencingworksheet is a worksheet that is linked from another worksheet (referredto as a data source worksheet). The referencing worksheet inherits thedata set presented in the data source worksheet (i.e., data not excludedfrom presentation). The referencing worksheet may also inherit theresults of functions applied to other data but not the functionsthemselves. The referencing worksheet may be limited to the data setpresented or otherwise made available in the data source worksheet(unless the user generating the referencing worksheet has access toexcluded data in the database). A referencing worksheet may be linkedfrom any number of data sources, including multiple data sourceworksheets. Further, any additional changes made to the data sourceworksheet are reflected in the referencing worksheet. For example, if acolumn is added to and presented in the data source worksheet, thecolumn would then appear in or be available to the referencingworksheet.

For example, the CFO of a corporation may have unrestricted access to afinancial database for the corporation, and using the financialdatabase, the CFO creates a data source worksheet for a salary budget.The data source worksheet may be generated from the database using adata set that includes an employee identifier column, an employeedepartment column, an employee salary column, and a column indicating a1-10 score given to the employee based on a subjective evaluation of theimportance of that employee to the company. The CFO may create anadditional calculation column that calculates a yearly bonus for theemployee based, in part, on the employee subjective value column. TheCFO may then sort the worksheet by employee department and create anadditional calculation column that calculates the total salary and bonusbudget for each department. Finally, the CFO may hide the employeesalary column and the employee subjective value column so that no otherusers may view those columns.

Continuing with the example, an accountant at the corporation withoutaccess to the financial database may create a referencing worksheetlinked from the CFOs data source worksheet. The referencing worksheetwould present the employee identifier column, the employee departmentcolumn, the employee yearly bonus column, and the total salary and bonusbudget column. Because the employee salary column and the employeesubjective value column were excluded from presentation in the datasource worksheet, the referencing worksheet would not have access to theemployee salary column or the employee subjective value column. Further,only the results of the applied function would be visible and accessibleby the accountant and not the function itself. Therefore, thereferencing worksheet would not disclose that the yearly bonus columnwas calculated using the subjective value column. The accountant maythen edit the referencing worksheet to build upon the work done by theCFO in creating the data source worksheet.

The referencing worksheet may present at least a subset of the data setpresented by the data source worksheet. Specifically, the data sourceworksheet presents a data set and may or may not exclude a portion ofthat data set from presentation. A referencing worksheet linked from thedata source worksheet will only have access to the portion of the dataset presented in the data source worksheet (without another data sourceavailable). Therefore, only the subset of the data set presented in thedata source worksheet will be accessible (and presentable) in thereferencing worksheet.

The linking module (126) is hardware, software, or an aggregation ofhardware and software configured to receive requests from the clientcomputing system (194), via the GUI (GUI). The linking module (126) isalso configured to generate database queries in response to requests fordata sets and manipulations of those data sets. The linking module (126)may be part of a database query generator that generates the databasequery. The database query may be populated based on the worksheetmetadata.

The linking module (126) presents, via the GUI (202), a worksheet usingthe information in the worksheet metadata. Worksheet metadata is datathat describes a worksheet. Specifically, the worksheet metadata mayinclude a description of the data set, the formulas to be applied to thedata set, and the presentation structure of the data set. Thedescription of the data set describes which data is to be requested viathe database query. The description of the data set may include whichcolumns and rows of data are to be retrieved from the database (206) viathe database query. The functions to be applied to the data set mayinclude the manipulations of the data in the columns and rows receivedin the data set. Such manipulations may include calculation columns thatapply a function to data in the data set.

The presentation structure of the data set may include presentationselections made by a user. The presentation structure may include thehierarchical relationship between the columns, filters applied to thedata, and the manner in which the data is sorted. The presentationstructure of the data set may also include the GUI visibility ofparticular data within the data set. GUI visibility may be altered basedon filter settings of the data or on the visibility status (e.g., hiddenor not hidden) of a column within the data set. The presentationstructure of the data set may also include the formatting of theworksheet, such as the size of rows and columns.

Worksheet metadata may also include a reference to, or identifier of,the worksheet metadata for a different worksheet. For example, theworksheet metadata for a referencing worksheet may include a referenceto the data source worksheet from which the referencing worksheet waslinked. Further, referencing worksheet metadata may lack a reference tothe database or data set upon which the data source worksheet was built.Rather, the referencing worksheet metadata may only include a referenceto the data source worksheet metadata, and that reference is used toretrieve the data source worksheet metadata. Because the referencingworksheet metadata may lack a reference to the database or data set,both the referencing worksheet metadata and data source worksheetmetadata are used to generate the database query.

A function within a worksheet may include an exposable parameter. Anexposable parameter is variable within a worksheet function that can bepresented and adjusted in a referencing worksheet without presenting,adjusting, or otherwise exposing the worksheet function itself. Forexample, a data source worksheet may be created with a calculationcolumn that computes a result based on a particular variable. Thevariable may be designated as an exposable parameter (e.g., using aspecial notation within the function). A referencing worksheet linkedfrom the data source worksheet will then be able to view and adjust theexposable parameter and therefore changing the result of the calculationcolumn without access to the underlying function. Because a referencingworksheet may not allow access to an underlying function within a datasource worksheet, the exposable parameter provides a mechanism to adjusta function in specific, intentional ways without providing unlimitedaccess to the function.

As a specific example, a regional manager may oversee a group of localmanagers for a retail store. Each local manager's store may be subjectto the different taxes of the local jurisdiction. The regional managermay create a data source worksheet with a calculation column thatcomputes the final sale price of each item based on the taxes of thelocal jurisdiction. The regional manager may set the value of the localtaxes as an exposable parameter. Each local manager may then be providedtheir own referencing worksheet linked from the regional manager'sworksheet. Each local manager may then be able to adjust the local taxesas an exposable parameter on their respective referencing worksheetbased on their own jurisdiction's taxes. Further, the local managerwould not have access to the underlying function, and thereforepreventing any inadvertent altering of the underlying function.

The metadata repository (204) is an aggregation of hardware and softwareused to store worksheet metadata. Worksheet metadata may be retrievedfrom the metadata repository (204) using a reference to, or identifierof, the worksheet metadata. The database (206) is a collection of dataand a management system for the data. A data set is a collection of datafrom the database (206). The data set may be an organization of datagenerated in response to a database query and provided to the linkingmodule (126). The data set may include data organized into columns androws.

FIG. 3 shows an exemplary system for exposing parameters in referencingworksheets according to embodiments of the present invention. As shownin FIG. 3 , the exemplary GUI (202) includes a spreadsheet structure(302), a list structure (304), and an exposable parameter (306). Thespreadsheet structure (302) includes a data set (shown as empty rows)with six columns (column A (306A), column B (306B), column C (306C),column D (306D), column E (306E), column F (306F)).

The spreadsheet structure (302) is a graphical element and organizingmechanism for a worksheet that presents a data set. A worksheet is apresentation of a data set from a database (204). The spreadsheetstructure (302) displays the worksheet as rows of data organized bycolumns (column A (306A), column B (306B), column C (306C), column D(306D), column E (306E), column F (306F)). The columns delineatedifferent categories of the data in each row of the worksheet. Thecolumns may also be calculations using other columns in the worksheet.

The list structure (304) is a graphical element used to define andorganize the hierarchical relationships between the columns (column A(306A), column B (306B), column C (306C), column D (306D), column E(306E), column F (306F)) of the data set. The term “hierarchicalrelationship” refers to subordinate and superior groupings of columns.For example, a database may include rows for an address book, andcolumns for state, county, city, and street. A data set from thedatabase may be grouped first by state, then by county, and then bycity. Accordingly, the state column would be at the highest level in thehierarchical relationship, the county column would be in the secondlevel in the hierarchical relationship, and the city column would be atthe lowest level in the hierarchical relationship.

The list structure (304) presents a dimensional hierarchy to the user.Specifically, the list structure (304) presents levels arrangedhierarchically across at least one dimension. Each level within the liststructure (304) is a position within a hierarchical relationship betweencolumns (column A (306A), column B (306B), column C (306C), column D(306D), column E (306E), column F (306F)). The keys within the liststructure (304) identify the one or more columns that are theparticipants in the hierarchical relationship. Each level may have morethan one key.

One of the levels in the list structure (304) may be a base level.Columns selected for the base level provide data at the finestgranularity. One of the levels in the list structure (304) may be atotals or root level. Columns selected for the totals level provide dataat the highest granular level. For example, the totals level may includea field that calculates the sum of each row within a single column ofthe entire data set (i.e., not partitioned by any other column).

The GUI (202) may enable a user to drag and drop columns (column A(306A), column B (306B), column C (306C), column D (306D), column E(306E), column F (306F)) into the list structure (304). The order of thelist structure (304) may specify the hierarchy of the columns relativeto one another. A user may be able to drag and drop the columns in thelist structure (304) at any time to redefine the hierarchicalrelationship between columns. The hierarchical relationship definedusing the columns selected as keys in the list structure (304) may beutilized in charts such that drilling down (e.g., double click on abar), enables a new chart to be generated based on a level lower in thehierarchy.

The GUI (202) may also include the ability to set or adjust an exposableparameter (306). The exposable parameter (306) may include a default“#value” that is alterable by a user of the GUI (202). The exposableparameter (306) may be presented in a number of different forms, such asan entry field (as shown in FIG. 3 ), a slider, a radio button, a combobox, etc. The GUI (202) may further include a chart based on one or moreof the columns of the spreadsheet structure (302), including acalculation column utilizing a function with an exposable parameter.Altering the exposable parameter may change the chart presented in theGUI (202).

For further explanation, FIG. 4 sets forth a flow chart illustrating anexemplary method for exposing parameters in referencing worksheetsaccording to embodiments of the present invention that includesreceiving (402) a request (420) for a referencing worksheet linked froma data source worksheet, wherein the data source worksheet is apresentation of a data set from a database, and wherein the data sourceworksheet comprises a function utilizing an exposable parameter.Receiving (402) a request (420) for a referencing worksheet linked froma data source worksheet, wherein the data source worksheet is apresentation of a data set from a database, and wherein the data sourceworksheet comprises a function utilizing an exposable parameter may becarried out by the linking module (126) receiving the request (420) froma user via a GUI on the client computing system (194) to generate thereferencing worksheet using a data source worksheet. The referencingworksheet metadata may be generated and populated using the contents ofrequest (420).

The request (420) may include a reference to the data source worksheetand a selection of columns from the data source worksheet. The requestmay include a selection of all columns to present the entire data setfrom the data source worksheet. Alternatively, the request may include aselection of fewer than all columns to present a subset of the data setfrom the data source worksheet. The request (420) may include otherselections from the data source worksheet, such as an indication as towhether the referencing worksheet is to inherit the presentationstructure of the data source worksheet (i.e., formatting).

The method of FIG. 4 further includes generating (404) the referencingworksheet from the data source worksheet, wherein the referencingworksheet exposes the exposable parameter without exposing the functionutilizing the exposable parameter. Generating (404) the referencingworksheet from the data source worksheet, wherein the referencingworksheet exposes the exposable parameter without exposing the functionutilizing the exposable parameter may be carried out by the linkingmodule (126) parsing the request for the reference to the data sourceworksheet metadata and then retrieving the data source worksheetmetadata from a metadata repository using the reference. Once the datasource worksheet metadata is retrieved, the referencing worksheetmetadata is generated. The referencing worksheet metadata includes theexposable parameter and the ability to evaluate the data sourceworksheet function using the exposable parameter. Evaluating thefunction using the exposable parameter may include accessing the datasource worksheet metadata.

The method of FIG. 4 further includes presenting (406) the referencingworksheet with the exposable parameter without allowing access to thefunction utilizing the exposable parameter. Presenting (406) thereferencing worksheet with the exposable parameter without allowingaccess to the function utilizing the exposable parameter may be carriedout by the linking module (126) using the referencing worksheet metadatato present the referencing worksheet, including exposing the exposableparameter, using the spreadsheet structure of the GUI on the clientcomputing system (194). The exposable parameter may be exposed andadjustable using a portion of the GUI. Once the referencing worksheet ispresented on the client computing system (194), a user of the clientcomputing system (194) may view the results of the function utilizingthe exposable parameter, but is not able to view the function itself, oradjust any portion of the function that is not an exposable parameter.

The above limitations improve the operation of the computer system byallowing work on a first worksheet to be reused in subsequent worksheetslinked from the first worksheet while allowing certain portions ofunderlaying functions to be adjusted. Specifically, a single generaldata source worksheet may be generated and maintained, and one or morereferencing worksheets may be linked from the data source worksheet.Each of the referencing worksheets may adjust the exposable parameter tofit their needs without exposing the function to the users of thereferencing worksheet. This is accomplished by generating a data sourceworksheet with a function utilizing an exposable parameter and creatingthe referencing worksheet that exposes the exposable parameter whilehiding the underlying function.

For further explanation, FIG. 5 sets forth a flow chart illustrating afurther exemplary method for exposing parameters in referencingworksheets according to embodiments of the present invention thatincludes receiving (402) a request (420) for a referencing worksheetlinked from a data source worksheet, wherein the data source worksheetis a presentation of a data set from a database, and wherein the datasource worksheet comprises a function utilizing an exposable parameter;generating (404) the referencing worksheet from the data sourceworksheet, wherein the referencing worksheet exposes the exposableparameter without exposing the function utilizing the exposableparameter; and presenting (406) the referencing worksheet with theexposable parameter without allowing access to the function utilizingthe exposable parameter.

The method of FIG. 5 differs from the method of FIG. 4 , however, inthat the method of FIG. 5 further includes presenting (502) a request toset the exposable parameter; receiving (504) a value (520) for theexposable parameter; and presenting (506), in the referencing worksheet,results of the function evaluated using the received value for theexposable parameter. Presenting (502) a request to set the exposableparameter may be carried out by the linking module (126) utilizing aportion of the GUI on the client computing system (194) and presenting aGUI element to receive an input value for the exposable parameter.

Receiving (504) a value (520) for the exposable parameter may be carriedout by the linking module (126) detecting that a user has manipulatedthe GUI on the client computing system (194) to express a value in theGUI element dedicated to the exposable parameter. The value may bereceived in the form of a state specification from the GUI, such as aJavaScript Object Notation specification. Presenting (506), in thereferencing worksheet, results of the function evaluated using thereceived value for the exposable parameter may be carried out by thelinking module (126) reevaluating the function using the receivedexposable parameter and presenting the results in one or more columns ofthe referencing worksheet presented in the spreadsheet structure of theGUI.

For further explanation, FIG. 6 sets forth a flow chart illustrating afurther exemplary method for exposing parameters in referencingworksheets according to embodiments of the present invention thatincludes receiving (402) a request (420) for a referencing worksheetlinked from a data source worksheet, wherein the data source worksheetis a presentation of a data set from a database, and wherein the datasource worksheet comprises a function utilizing an exposable parameter;generating (404) the referencing worksheet from the data sourceworksheet, wherein the referencing worksheet exposes the exposableparameter without exposing the function utilizing the exposableparameter; and presenting (406) the referencing worksheet with theexposable parameter without allowing access to the function utilizingthe exposable parameter.

The method of FIG. 6 differs from the method of FIG. 4 , however, inthat generating (404) the referencing worksheet from the data sourceworksheet, wherein the referencing worksheet exposes the exposableparameter without exposing the function utilizing the exposableparameter includes generating (602) a database query (620) using datasource worksheet metadata of the data source worksheet and referencingworksheet metadata received in the request (420); and issuing (604) thedatabase query (620) to the database.

Generating (602) a database query (620) using data source worksheetmetadata of the data source worksheet and referencing worksheet metadatareceived in the request (420) may be carried out by the linking module(126) using the description of the data set, the formulas to be appliedto the data set, and the presentation structure of the data set in thedata source worksheet metadata and the referencing worksheet metadatapopulated by the request. The database query (620) may be an SQLstatement. Issuing (604) the database query (620) to the database may becarried out by the linking module (126) sending the generated databasequery (620) over a wide area network to the database on the cloud-baseddata warehouse (192).

The method of FIG. 6 also differs from the method of FIG. 4 in thatpresenting (406) the referencing worksheet with the exposable parameterwithout allowing access to the function utilizing the exposableparameter includes receiving (606), in response to the database query(620), a subset of the data set (622) from the database; and presenting(608), in a graphical user interface, the subset of the data set (622)from the database including organizing the subset of the data set (622)based on the referencing worksheet metadata. Receiving (606), inresponse to the database query (620), a subset of the data set (622)from the database may be carried out by the linking module (126)obtaining at least the subset of the data set (622) from the database onthe cloud-based data warehouse (192).

The function utilizing the exposable parameter may be evaluated (andreevaluated upon updating the value) without requiring additional dataretrieval from the database on the cloud-based data warehouse (192).Specifically, the function may use, as input, rows from the data setthat have been previously retrieved from the database. If a new value isset for the exposable parameter, the linking module (126) may use thepreviously retrieved data set to evaluate the function with the newexposable parameter.

Presenting (608), in a graphical user interface, the subset of the dataset (622) from the database including organizing the subset of the dataset (622) based on the referencing worksheet metadata may be carried outby the linking module (126) generating the referencing worksheet fromthe referencing worksheet metadata and received subset of the data set(324). Presenting the subset of the data set (424) may include applyingany presentation structures from the data source worksheet metadata orthe request (420).

In view of the explanations set forth above, readers will recognize thatthe benefits of exposing parameters in referencing worksheets accordingto embodiments of the present invention include:

-   -   Improving the operation of a computing system by allowing        parameter adjustments on a worksheet linked from a data source        worksheet, increasing computing system efficiency and usability.    -   Improving the operation of a computing system by providing users        of referencing worksheets access to a parameter while limiting        access to sensitive data within the function utilizing the        parameter, increasing computing system usability and security.    -   Improving the operation of a computing system by generating and        maintaining a single general data source worksheet that is        reused by any number of referencing worksheet tailored for a        more specific purpose, increasing computing system efficiency        and usability.

Exemplary embodiments of the present invention are described largely inthe context of a fully functional computer system for exposingparameters in referencing worksheets. Readers of skill in the art willrecognize, however, that the present invention also may be embodied in acomputer program product disposed upon computer readable storage mediafor use with any suitable data processing system. Such computer readablestorage media may be any storage medium for machine-readableinformation, including magnetic media, optical media, or other suitablemedia. Examples of such media include magnetic disks in hard drives ordiskettes, compact disks for optical drives, magnetic tape, and othersas will occur to those of skill in the art. Persons skilled in the artwill immediately recognize that any computer system having suitableprogramming means will be capable of executing the steps of the methodof the invention as embodied in a computer program product. Personsskilled in the art will recognize also that, although some of theexemplary embodiments described in this specification are oriented tosoftware installed and executing on computer hardware, nevertheless,alternative embodiments implemented as firmware or as hardware are wellwithin the scope of the present invention.

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++ or the like, andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

It will be understood from the foregoing description that modificationsand changes may be made in various embodiments of the present inventionwithout departing from its true spirit. The descriptions in thisspecification are for purposes of illustration only and are not to beconstrued in a limiting sense. The scope of the present invention islimited only by the language of the following claims.

What is claimed is:
 1. A method of exposing parameters in referencingworksheets, the method comprising: receiving a request for a referencingworksheet linked from a data source worksheet, wherein the data sourceworksheet is a presentation of a data set from a database, and whereinthe data source worksheet comprises a function utilizing an exposableparameter, wherein the function is applied within the data sourceworksheet utilizing the exposable parameter; generating the referencingworksheet from the data source worksheet, wherein the referencingworksheet exposes the exposable parameter without exposing the functionutilizing the exposable parameter, wherein generating the referencingworksheet from the data source worksheet comprises: generating adatabase query using data source worksheet metadata of the data sourceworksheet and referencing worksheet metadata received in the request;and issuing the database query to the database, wherein the database iswithin a cloud-based data warehouse; and presenting the referencingworksheet with the exposable parameter without allowing access to thefunction utilizing the exposable parameter, wherein the referenceworksheet presents at least a subset of the data set presented by thedata source worksheet, wherein presenting the referencing worksheet withthe exposable parameter without allowing access to the functionutilizing the exposable parameter comprises: receiving, in response tothe database query, a subset of the data set from the database; andpresenting, in a graphical user interface, the subset of the data setfrom the database including organizing the subset of the data set basedon the referencing worksheet metadata.
 2. The method of claim 1, furthercomprising: presenting a request to set the exposable parameter.
 3. Themethod of claim 2, further comprising: receiving a value for theexposable parameter; and presenting, in the referencing worksheet,results of the function evaluated using the received value for theexposable parameter.
 4. The method of claim 1, wherein altering theexposable parameter changes a chart presented in the referencingworksheet.
 5. The method of claim 1, wherein the referencing worksheetis presented without presenting the data source worksheet.
 6. Anapparatus for exposing parameters in referencing worksheets, theapparatus comprising a computer processor, a computer memory operativelycoupled to the computer processor, the computer memory having disposedwithin it computer program instructions that, when executed by thecomputer processor, cause the apparatus to carry out the steps of:receiving a request for a referencing worksheet linked from a datasource worksheet, wherein the data source worksheet is a presentation ofa data set from a database, and wherein the data source worksheetcomprises a function utilizing an exposable parameter, wherein thefunction is applied within the data source worksheet utilizing theexposable parameter; generating the referencing worksheet from the datasource worksheet, wherein the referencing worksheet exposes theexposable parameter without exposing the function utilizing theexposable parameter, wherein generating the referencing worksheet fromthe data source worksheet comprises: generating a database query usingdata source worksheet metadata of the data source worksheet andreferencing worksheet metadata received in the request; and issuing thedatabase query to the database; and presenting the referencing worksheetwith the exposable parameter without allowing access to the functionutilizing the exposable parameter, wherein the worksheet presents atleast a subset of the data set presented by the data source worksheet,wherein presenting the referencing worksheet with the exposableparameter without allowing access to the function utilizing theexposable parameter comprises: receiving, in response to the databasequery, a subset of the data set from the database; and presenting, in agraphical user interface, the subset of the data set from the databaseincluding organizing the subset of the data set based on the referencingworksheet metadata.
 7. The apparatus of claim 6, wherein the computerprogram instructions further cause the apparatus to carry out the stepsof: presenting a request to set the exposable parameter.
 8. Theapparatus of claim 7, wherein the computer program instructions furthercause the apparatus to carry out the steps of: receiving a value for theexposable parameter; and presenting, in the referencing worksheet,results of the function evaluated using the received value for theexposable parameter.
 9. The apparatus of claim 6, wherein altering theexposable parameter changes a chart presented in the referencingworksheet.
 10. The apparatus of claim 6, wherein the referencingworksheet is presented without presenting the data source worksheet. 11.A computer program product for exposing parameters in referencingworksheets, the computer program product disposed upon a non-transitorycomputer readable medium, the computer program product comprisingcomputer program instructions that, when executed, cause a computer tocarry out the steps of: receiving a request for a referencing worksheetlinked from a data source worksheet, wherein the data source worksheetis a presentation of a data set from a database, and wherein the datasource worksheet comprises a function utilizing an exposable parameter,wherein the function is applied within the data source worksheetutilizing the exposable parameter; generating the referencing worksheetfrom the data source worksheet, wherein the referencing worksheetexposes the exposable parameter without exposing the function utilizingthe exposable parameter, wherein generating the referencing worksheetfrom the data source worksheet comprises: generating a database queryusing data source worksheet metadata of the data source worksheet andreferencing worksheet metadata received in the request; and issuing thedatabase query to the database; and presenting the referencing worksheetwith the exposable parameter without allowing access to the functionutilizing the exposable parameter, wherein the referencing worksheetpresents at least a subset of the data set presented by the data sourceworksheet, wherein presenting the referencing worksheet with theexposable parameter without allowing access to the function utilizingthe exposable parameter comprises: receiving, in response to thedatabase query, a subset of the data set from the database; andpresenting, in a graphical user interface, the subset of the data setfrom the database including organizing the subset of the data set basedon the referencing worksheet metadata.
 12. The computer program productof claim 11, wherein the computer program instructions further cause thecomputer to carry out the steps of: presenting a request to set theexposable parameter.
 13. The computer program product of claim 12,wherein the computer program instructions further cause the computer tocarry out the steps of: receiving a value for the exposable parameter;and presenting, in the referencing worksheet, results of the functionevaluated using the received value for the exposable parameter.
 14. Thecomputer program product of claim 11, wherein altering the exposableparameter changes a chart presented in the referencing worksheet.